Graphics image generation

ABSTRACT

A graphics image generation apparatus includes element arrangement means for, based on hierarchical data, arranging figures which indicate constituent elements on a lower hierarchy level than a constituent element on a predetermined level of the hierarchical data, in a figure region which indicates the constituent element on the predetermined level; and arrangement control means for generating a graphics image of the hierarchical data by causing the element arrangement means to recursively perform arrangement of figures for each hierarchy level from a lower hierarchy level to a higher hierarchy level of the hierarchical data. The arrangement of figures is accomplished by a first step of establishing the center point of one of the figures and two further points distant from the one figure to serve as vertices for construction of one triangle of a triangle mesh, and a second step of locating a center point of the one triangle to enable a positioning of a further one of the figures along a line connecting the center point of the one triangle with a vertex of the one triangle.

TECHNICAL FIELD

The present invention relates to a graphics display technology togenerate a graphics image of hierarchical data.

BACKGROUND ART

Various technologies have been proposed, which visualize a set of aplurality of elements while reflecting relationships between theelements, by using a computer. As this type of technology, there is atechnology which graphically displays data including a plurality of dataelements organized with a hierarchy structure (hereinafter, referred toas hierarchical data).

Conventionally, in the technology of graphically displaying this type ofhierarchical data in real time, the hierarchy structure has beendisplayed, in general, by use of a tree structure. For example,Explorer, which is a file operating system running on Windows, theoperating system by Microsoft Corporation, U.S., displays the hierarchystructure of a file system by using a simple tree structure, in whichdata elements are arranged in a row and arcs are placed between the dataelements.

However, since this is a simple method of just arranging data elementsin a row, in the case of graphically displaying large-scale hierarchicaldata including thousands to tens of thousands of data elements, it isdifficult to display a large quantity of information on a screen.

As a method of displaying hierarchical data more suitable forlarge-scale data than Explorer, Treemap method and Hyperbolic Treemethod are conceived.

The Treemap method expresses a hierarchy structure of data by splittinga screen space on which the hierarchical data is displayed inalternating vertical and horizontal directions and making the splitregions correspond to individual data elements. This Treemap method isdescribed in detail, for example, in the following literature 1.

literature 1: Shneiderman B., Tree visualization with treemaps: a 2-dspace-filling approach, ACM Transactions on Graphics, vol. 11, 1(January 1992), 92-99. or http://www.cs.umd.edu/hcil/treemaps/

In the Hyperbolic Tree method, a tree structure is arranged in ahyperbolic space. The following literature 2 discloses a method applyingthis Hyperbolic Tree method to express both a hierarchy structure and alink structure between data elements.

literature 2: Hao M. C., Hsu M., Dayal U., and Krug A., Web-basedVisualization of Large Hierarchical Graphs Using Invisible Links in aHyperbolic Space, HP Laboratories Palo Alto, HPL-2000-2.

FIG. 36 is a view showing an example of displaying hierarchical datausing the technology disclosed in the literature 2.

Referring to FIG. 36, arcs are radially extended from the highesthierarchy level toward lower hierarchy levels. Individual data elementsplaced at the lowest hierarchy level are finally arranged at theoutermost periphery.

Incidentally, as a method of visualizing a hierarchy structure ofhierarchical data, a method is conceived, which combines regions(rectangular regions, for example) which are made to correspond tohierarchy levels, in a nested manner for a graphics display.Specifically, an individual region is set for each classification ofdata elements constituting the hierarchy structure, and the dataelements are arranged in the regions.

In this case, if all the data elements arranged in a predeterminedregion are expressed by cells in the same shape and of the same size,the data elements can be arranged by just arraying the cells. However,when the meanings and contents of the data elements are reflected on theshapes and sizes of the cells, it becomes a problem how efficiently thecells are arranged in the region.

If the regions and the cells are expressed by rectangles, this problemcomes to a problem that “a set composed of rectangles of arbitrary sizesis arranged in the minimum rectangular region.” This problem is calledPacking, Nesting, Marking, or the like, and applied in fields ofarranging VLSIs (Very Large Scale Integrated Circuit) on a board,arranging patterns of clothes, arranging mechanical parts on a plate,and the like. Various techniques have been presented to solve thisproblem in these fields.

As described above, the technique for expressing a hierarchy structureby use of a tree structure has hitherto been used as the technique forgraphically displaying hierarchical data.

However, it has been difficult for the simple tree structure, in whichdata elements are arrayed in a row and arcs are placed between the dataelements, to display all the data elements of large-scale hierarchicaldata on a screen.

The Treemap method disclosed in the literature 1 is a technique suitablefor large-scale hierarchical data to graphically display hierarchicaldata in comparison with the above described simple tree structure.However, when thousands to tens of thousands of data elements aredisplayed, the regions of minimum units which are made to correspond tothe data elements are excessively fine, and the visibility thereof islowered.

Similarly, even in the technique disclosed in the literature 4 using theHyperbolic Tree method, which is considered to be suitable for thegraphics display of relatively large-scale hierarchical data, theindividual data elements on the lowest hierarchy level are arranged inthe periphery of a radial tree structure. Accordingly, it is difficultto display thousands to tens of thousands of data elements.

Furthermore, any of these technologies for graphically displayinghierarchical data using a tree structure expresses a hierarchy structurerelated to classification of data elements by use of the tree structure.Therefore, the hierarchy structure is easily recognized, but in the casewhere there is any relationship (link structure) between the individualdata elements, it is difficult to display this link structure by meansof placing arcs or the like.

Moreover, in the case of using the method of performing a graphicsdisplay with nested regions as a technique for visualizing the hierarchystructure of hierarchical data, as previously described, it is requiredto solve the problem that a set composed of cells of arbitrary sizes arearranged in a minimum region. There have already been various techniquesfor solving this problem. However, most thereof are optimizationtechniques for minimizing an arrangement region, in other words,technologies of “minimizing the arrangement region regardless of thelength of calculation time (even with a long calculation time).”

However, when this problem is tried to be solved as part of thetechnology of graphically displaying hierarchical data, it is requiredto reduce the calculation time (for example, a few seconds, a timeperiod to allow an interactive operation) and to obtain, even if notoptimal, a proper arrangement result to a certain degree.

In this connection, an object of the present invention is to provide atechnique for easily generating a graphics image of large-scalehierarchical data.

Another object of the present invention is to provide a technique forrapidly performing processing of efficiently arranging elements ofarbitrary sizes in a predetermined region.

SUMMARY

The aspects of ths disclosed embodiments provide a graphics imagegeneration apparatus characterized by being configured as follows.Specifically, this graphics image generation apparatus includes elementarrangement means for, based on hierarchical data, arranging figureswhich indicate constituent elements on a lower hierarchy level than aconstituent element on a predetermined level of the hierarchical data,in a figure region which indicates the constituent element on thepredetermined level; and arrangement control means for generating agraphics image of the hierarchical data by causing the elementarrangement means to recursively perform arrangement of figures for eachhierarchy level from a lower hierarchy level to a higher hierarchy levelof the hierarchical data. The arrangement of figures is accomplished bya first step of establishing the center point of one of the figures andtwo further points distant from the one figure to serve as vertices forconstruction of one triangle of a triangle mesh, and a second step oflocating a center point of the one triangle to enable a positioning of afurther one of the figures along a line connecting the center point ofthe one triangle with a vertex of the one triangle.

In another aspect, the disclosed embodiments are directed to a graphicsimage generation apparatus which generates a graphics image includingfigures arranged within a predetermined region. In one embodiment, theapparatus includes sort means for sorting figure data to be arrangedbased on a figure area; and element arrangement means for sequentiallyarranging figures based on the figure data from a center of the regionto a periphery thereof in sort order obtained by the sort means. Thearranging of figures is accomplished by a first step of establishing thecenter point of one of the figures and two further points distant fromthe one figure to serve as vertices for construction of one triangle ofa triangular mesh, and a second step of locating a center point of theone triangle to enable a positioning of a further one of the figuresalong a line connecting the center point of the one triangle with avertex of the one triangle.

In a further aspect, the aspects of the disclosed embodiments aredirected to a graphics image generation apparatus that includes graphicsimage generation means for receiving hierarchical data and generatingimage data of a graphics image which expresses a hierarchy structure ofthe hierarchical data by use of a nested structure of two-dimensionalfigures; storage means for storing the image data of the graphics imageof the hierarchical data, the image data being generated by the graphicsimage generation means; and display means for reading the image datafrom the storage means and displaying the read image data. Thegenerating of image data is accomplished by a first step of establishingthe center point of one of the figures and two further points distantfrom the one figure to serve as vertices for construction of onetriangle of a triangular mesh, and a second step of locating a centerpoint of the one triangle to enable a positioning of a further one ofthe figures along a line connecting the center point of the one trianglewith a vertex of the one triangle.

In yet another aspect, the disclosed embodiments are directed to agraphics image generation apparatus that generates a graphics imageincluding figures arranged within a predetermined region. In oneembodiments the apparatus includes position information holding meansfor holding information concerning arrangement positions of figures, theinformation being created based on a graphics image already generated;and element arrangement means for arranging the figures in the regionbased on the information, held in the position information holdingmeans, concerning the arrangement positions of the figures such that thefigures to be arranged do not overlap each other. The arranging offigures is accomplished by a first step of establishing the center pointof one of the figures and two further points distant from the one figureto serve as vertices for construction of one triangle of a triangularmesh, and a second step of locating a center point of the one triangleto enable a positioning of a further one of the figures along a lineconnecting the center point of the one triangle with a vertex of the onetriangle.

-   -   In another aspect, the disclosed embodiments are directed to a        graphics image generation apparatus which generates a graphics        image including figures arranged with a predetermined region. In        one embodiment the apparatus includes position information        holding means for holding information and element arrangement        means for arranging the figures in the region based on the        information, held in the position information holding means,        concerning the arrangement positions of the figures such that        the figures to be arranged do not overlap each other. The        arranging of figures is accomplished by a first step of        establishing the center point of one of the figures and two        further points distant from the one figure to serve as vertices        for construction of one triangle of a triangular mesh, and a        second step of locating a center point of the one triangle to        enable a positioning of a further one of the figures along a        line connecting the center point of the one triangle with a        vertex of the one triangle.

In a further aspect, the disclosed embodiments are directed to agraphics image generation apparatus that generates a graphics imageincluding figures arranged within a predetermined region. In oneembodiment the apparatus includes position information holding means forholding information concerning arrangement positions of figures createdbased on predetermined coordinate axes which expresses meanings of databy a positional relationship; and element arrangement means forarranging the figures in the region based on the information, held inthe position information holding means, concerning the arrangementpositions of the figures such that the figures to be arranged do notoverlap each other. The arranging of figures is accomplished by a firststep of establishing the center point of one of the figures and twofurther points distant from the one figure to serve as vertices forconstruction of one triangle of a triangular mesh, and a second step oflocating a center point of the one triangle to enable a positioning of afurther one of the figures along a line connecting the center point ofthe one triangle with a vertex of the one triangle.

In a further aspect, the disclosed embodiments are directed to agraphics image generation method of generating a graphics imageincluding figures within a predetermined region by controlling acomputer. In one embodiment the method includes reading figure data tobe arranged from a storage unit storing the figure data, sorting thefigure data based on figure areas, and storing the sorted figure data insort result storing means; generating triangular mesh in the region;reading a sort order of the figure data from the sort result storingmeans, sequentially setting figures based on the figure data as objectsto be arranged in accordance with the sort order, determiningarrangement positions of the figures based on triangular elements of thetriangular mesh, and arranging the figures as the objects to be arrangedat the arrangement positions; and storing a graphics image obtained byarranging the figures in the region into image data storing means;wherein the determining of arrangement positions of the figures isaccomplished by a first step of establishing the center point of one ofthe figures and two further points distant from the one figure to serveas vertices for construction of one triangle of a triangular mesh, and asecond step of locating a center point of the one triangle to enable apositioning of a further one of the figures along a line connecting thecenter point of the one triangle with a vertex of the one triangle.

In one embodiment, a graphics image generation method of generating agraphics image including figures arranged within a predetermined regionby controlling a computer includes reading figure data to be arrangedfrom a storage unit storing the figure data, sorting the read figuredata on the basis of a predetermined rule based on previously specifiedarrangement positions of figures, and storing the sorted figure data insort result storing means; generating triangular mesh in the region;reading a sort order of the figure data from the sort result storingmeans, sequentially setting figures based on the figure data as objectsto be arranged in accordance with the sort order, determiningarrangement positions of the figures based on the previously specifiedarrangement positions of the figures and triangular elements of thetriangular mesh, and arranging the figures as the objects to be arrangedat the arrangement positions; and storing a graphics image obtained byarranging the figures in the region into image data storing means. Thedetermining of arrangement positions of the figures is accomplished by afirst step of establishing the center point of one of the figures andtwo further points distant from the one figure to serve as vertices forconstruction of one triangle of a triangular mesh, and a second step oflocating a center point of the one triangle to enable a positioning of afurther one of the figures along a line connecting the center point ofthe one triangle with a vertex of the one triangle.

In a further aspect, the disclosed embodiments are directed to a storagemedium having a program capable of controlling a computer to generate agraphics image. In one embodiment, the program can cause the computer toexecute processing of receiving hierarchical data and stakingconstituent elements of the hierarchical data into data storing meansbased on a hierarchy structure of the hierarchical data; processing ofrecursively executing, from a lower hierarchy level to a higherhierarchy level of the hierarchical data, processing of sequentiallyreading the constituent elements stacked in the data storing means andarranging figures indicating constituent elements on a lower hierarchylevel than the read constituent elements in a figure region whichindicate the read constituent elements; and processing of storing agraphics image of the hierarchical data obtained by recursivelyexecuting arrangement of the figures, into image data storing means. Theexecuting of an arrangement of the figures is accomplished by a firststep of establishing the center point of one of the figures and twofurther points distant from the one figure to serve as vertices forconstruction of one triangle of a triangular mesh, and a second step oflocating a center point of the one triangle to enable a positioning of afurther one of the figures along a line connecting the center point ofthe one triangle with a vertex of the one triangle.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing a configuration of a computer system as agraphics image generation apparatus according to a first embodiment ofthe present invention;

FIG. 2 is a diagram illustrating a configuration of the graphics imagegeneration apparatus according to the first embodiment of the presentinvention;

FIG. 3 is a view showing a circumscribed circle of a triangular elementin triangular mesh;

FIG. 4 is a view showing a state where triangular elements of thetriangular mesh are classified by the number of adjacent dummy vertices;

FIGS. 5A and 5B are views illustrating a technique for placing arectangle in a triangular element selected as an object where therectangle is placed;

FIGS. 6A and 6B are views illustrating processing of moving dummyvertices and expanding an arrangement region to arrange a rectangle;

FIG. 7 is a flowchart illustrating an entire process of arranging acluster on a predetermined hierarchy level according to this embodiment;

FIG. 8 is a flowchart illustrating a procedure of arranging therectangle by using the triangular mesh according to this embodiment;

FIGS. 9A to 9E are views showing the arrangement of rectangles by usingthe triangular mesh according to this embodiment;

FIGS. 10A to 10C are views illustrating processing of updating thetriangular mesh following the arrangement of a new rectangle accordingto this embodiment;

FIG. 11 is a flowchart illustrating a process of generating a graphicsimage of hierarchical data according to this embodiment;

FIGS. 12A to 12C are views illustrating how constituent elements ofhierarchical data are arranged for each hierarchy level, and thegraphics image is generated according to this embodiment;

FIG. 13 is a view showing a state where Web pages are graphicallydisplayed according to this embodiment by being handled as thehierarchical data based on URL (Uniform Resource Locators);

FIG. 14 is a diagram illustrating a configuration of a graphics imagegeneration apparatus which generates a graphics image of graph data witha hierarchy structure according to the second embodiment of the presentinvention;

FIG. 15 is a flowchart illustrating the operation of generating an arcbetween constituent elements by an arc generation section;

FIGS. 16A to 16D are views showing how the arcs are generated for graphdata generated by a sort section, an element arrangement section, and anarrangement control section;

FIG. 17 is a view showing a state where, for clusters indicating pagesconcerning some projects of the Web pages shown in FIG. 13, arcsindicating a link structure between the pages are generated;

FIGS. 18A and 18B are views showing a concept of a template introducedin a third embodiment of the present invention;

FIG. 19 is a diagram illustrating a configuration of a graphic imagegeneration apparatus which generates a graphics image of hierarchicaldata according to the third embodiment;

FIG. 20 is a view showing a state where coordinate values of fourvertices of an arrangement region are normalized based on a template;

FIG. 21 is a view illustrating a method of arranging constituentelements according to this embodiment;

FIGS. 22A and 22B are views illustrating a method of extractingtriangular mesh elements for determining the arrangement position of arectangle;

FIG. 23 is a view illustrating a method of obtaining candidate positionswhere a rectangle is arranged in an extracted triangular mesh element;

FIG. 24 is a view schematically showing a method of expanding anarrangement region in this embodiment;

FIG. 25 is a flowchart illustrating a method of arranging a group ofrectangles constituting a hierarchy level;

FIG. 26 is a flowchart illustrating a method of determining thearrangement position of a rectangle;

FIG. 27 is a flowchart illustrating processing of generating a graphicsimage of hierarchical data by the control of an arrangement controlsection;

FIGS. 28A to 28C are views showing how a graphics image is updated byusing a template for hierarchical data changing along time;

FIGS. 29A to 29C are views showing how a graphics image is generated byusing a template reflecting a design view of a user;

FIGS. 30A to 30C are views showing how a graphics image is generated byusing a template based on predetermined coordinate axes;

FIGS. 31A to 31C are views showing states where predeterminedhierarchical data are graphically displayed according to thisembodiment;

FIG. 32 is a view showing a state where predetermined Web pages aregraphically displayed according to this embodiment by being handled ashierarchical data based on URL;

FIG. 33 is a view showing a state where the hierarchical data of FIG. 32is slightly changed and graphically displayed again without using atemplate;

FIG. 34 is a view showing a state where the graphics image of FIG. 32 isgraphically displayed again with the template under the same condition;

FIGS. 35A and 35B are views showing examples of graphics imagesgenerated for two slightly different types of hierarchical data withoutusing the template; and

FIG. 36 is a view showing a display example of hierarchical dataaccording to the conventional technology.

BEST MODES FOR CARRYING OUT THE INVENTION

Hereinafter, the present invention will be described in detail based onfirst to third embodiments shown in the accompanying drawings.

First, the overview of the present invention will be described. Thepresent invention generates a graphics image of hierarchical data byusing a computer system. As a method of expressing the hierarchicaldata, the present invention uses a technique of two-dimensionallyexpressing the hierarchical data by combining regions indicatinghierarchy levels in a nested manner.

The procedure of generating a graphics image of a nested structure is asfollows. Data elements on a lowest hierarchy level are arranged in aspace where the graphics image is generated (space displayed on adisplay device, hereinafter, referred to as a display space).Subsequently, a region including a set of the data elements is formed toexpress a higher hierarchy level by one level. Sets of the thus obtainedregions are properly rearranged in the display space, and a largerregion including the sets of these regions is formed to express afurther higher hierarchy level by one level. Such a process isrecursively repeated to express hierarchy levels of the hierarchicaldata up to the highest level.

Specifically, in the present invention, the graphics image of thehierarchical data is generated by sequentially arranging thehierarchical data from the lower hierarchy level to the higher hierarchylevel.

The first embodiment is a system which generates the graphics image ofhierarchical data as described above. The second embodiment is a systemwhich graphically displays graph data with a hierarchy structure byexpressing relationships between constituent elements on a predeterminedhierarchy level by use of a link structure with arcs, using thetechnology of generating a graphics image. The third embodiment is asystem which intentionally controls the arrangement of the constituentelements in the graphics image to a certain extent by using a template.

Hereinafter, each embodiment will be described in detail.

First Embodiment

FIG. 1 is a diagram showing the configuration of a computer system as agraphics image generation apparatus which graphically displays graphdata according to the first embodiment.

Referring to FIG. 1, a computer system 10 includes a processing unit(CPU) 11, a main memory 12, a video memory 13, a display unit 14, and astorage unit 15. The processing unit 11 executes a graphics displayprocess by program control. The main memory 12 stores a programcontrolling the processing unit 11. With the video memory 13 and thedisplay unit 14, a graphics image of hierarchical data generated by theprocessing unit 11 is displayed. The storage unit 15 stores thehierarchical data to be processed.

The processing unit 11 is controlled by the program stored in the mainmemory 12 to read hierarchical data to be processed from the storageunit 15, generates a graphics image (image data) thereof, and stores thegraphics image in the video memory 13. The graphics image stored in thevideo memory 13 is displayed on the display unit 14. The main memory 12is used as a stack temporarily storing undermentioned cells and clustersin a process of graphics image generating processing by the processingunit 11.

Note that FIG. 1 shows only the configuration for implementing thisembodiment. Practically, it is obvious that input units, such as akeyboard and a mouse, for inputting various instructions and data, avoice output mechanism, various peripheral units, and an interface for anetwork are provided in addition to the configuration shown in thedrawing. The hierarchical data may be inputted from the outside via thenetwork, as well as read from the storage unit 15 as described above.

FIG. 2 shows a diagram illustrating the configuration of the graphicsimage generation apparatus which generates a graphics image ofhierarchical data according to the first embodiment.

As previously described, in the first embodiment, the graphics image ofhierarchical data is generated by a technique of combining regionsindicating hierarchy levels in a nested manner. In this graphics image,individual data elements in the hierarchical data are referred to ascells and expressed by squares of the same size. Constituent elements onhigher hierarchy levels indicating classification of the data elementsor the like are referred to as clusters and expressed by rectanglesincluding cells and clusters on lower hierarchy levels. In other words,the graphics image is composed of a single rectangular cluster ormultiply-arranged rectangular clusters and square cells arranged in thecluster or the clusters. However, in a stage of generating this graphicsimage, the cells and the clusters are just figure data of squares andrectangles. Therefore, the cells and the clusters can be treated in thesame manner. Accordingly, in the description below, the cells and theclusters are collectively referred to as constituent elements when thereis no need to distinguish the cells from the clusters.

Moreover, the description below will be mainly given of a case ofarranging the rectangular clusters which can have various sizes in thisembodiment. However, the cells and the clusters are treated withoutbeing distinguished as previously described, and it is obvious that asimilar explanation can be given when the cells are not limited to thesame size.

Referring to FIG. 2, the graphics image generation apparatus accordingto this embodiment includes a sort section 21, an element arrangementsection 22, and an arrangement control section 23. The sort section 21determines the arrangement order concerning the constituent elements oneach hierarchy level in the hierarchical data to be processed. Theelement arrangement section 22 arranges the constituent elements of thehierarchical data according to the order determined by the sort section21. The arrangement control section 23 causes the sort section 21 andthe element arrangement section 22 to recursively perform thearrangement processing of the constituent elements of the graph datasequentially from the lowest hierarchy level of the graph data.

Each component shown in FIG. 2 is a virtual software block implementedby the processing unit 11 which is controlled by the computer programheld in the main memory 12 of FIG. 1. The computer program controllingthe processing unit 11 is provided by being stored in a storage mediumsuch as a CD-ROM or a floppy disk to be distributed or by beingtransmitted via a network. The computer program is loaded in the mainmemory 12 and controls the processing unit 11 to implement a function ofeach component shown in FIG. 2 in the computer system 10 shown in FIG.1.

In the configuration shown in FIG. 2, in the case of arranging clustersor cells on a lower hierarchy level than a predetermined cluster withina rectangle indicating the predetermined cluster, the arrangement orderof the clusters or cells is determined (sorted).

The arrangement order is determined, as a rule, such that the rectanglesare sequentially arranged in descending order of size. In thisembodiment, since the cells corresponding to the data elements aresquares of the same size, the arrangement order can arbitrarily bedetermined. However, in the case of employing a display technique forreflecting the contents of the data elements on the sizes of the cells,the arrangement order is similarly determined according to the sizes ofthe cells. A sort result showing the arrangement order of the clustersor cells are temporarily stored in the main memory 12 or a resistor inthe processing unit 11.

In the case of visualizing a set of data elements, there are manyrequirements for arranging highly related data close to each other.Therefore, the sort section 21 is designed to modify the arrangementorder of the clusters in descending order of area based on apredetermined condition. Concrete processing of arranging the highlyrelated data close to each other is related to processing by the elementarrangement section 22 and will be described later.

The element arrangement section 22 arranges the clusters or the cells ofthe hierarchical data in the display space in the order sorted by thesort section 21. The arrangement manner is based on the followingpolicies.

-   (1) The clusters or the cells are sequentially arranged from the    center of the display space so as to be adjacent to a rectangle    already arranged.-   (2) When a cluster or a cell can be arranged in a gap between    rectangles already arranged, the cluster or the cell is arranged in    the gap.

In this embodiment, processing using triangular mesh which connects thecenter points of the rectangles is performed in order to implementprocessing of searching at high speed for a gap where a rectangle can bearranged, which is required in the policy (2). This triangular meshsatisfies the Delaunay condition.

In this embodiment, the constituent elements of the hierarchical dataare sequentially arranged from a lower hierarchy level to a higherhierarchy level. Accordingly, when the element arrangement section 22arranges a cluster on a predetermined level, clusters or cells on thelower levels than the relevant cluster have already been arranged.Therefore, in arranging a predetermined cluster, the element arrangementsection 22 retains relative positional relationships between a rectangleindicating the relevant cluster and rectangles or squares indicatingclusters or cells on the lower levels which have already been arrangedwithin the relevant cluster. In other words, the element arrangementsection 22 handles a combination of these figures as a figure to arrangethe same.

The arrangement control section 23 generates a graphics image of theentire hierarchical data by causing the sort section 21 and the elementarrangement section 22 to recursively repeating, from the lowerhierarchy level to the higher hierarchy level, the processing ofarranging the clusters or cells, which is performed for each level ofthe hierarchical data. The generated graphics image is stored in thevideo memory 13 shown in FIG. 1 and displayed on the display unit 14.

Next, a description will be given of processing of generating a graphicsimage of hierarchical data based on the above described configuration.

First, a detailed description will be given of search for an arrangementposition of a rectangle (cluster) by using the triangular mesh.

In this embodiment, when several rectangles have already been arranged,a group of rectangles is arranged in a small arrangement area byrepeating processing of detecting a region where the arranged rectanglesare sparse and of placing a next rectangle in the detected region.Therefore, in order to extract the region where the rectangles aresparse, the triangular mesh which connects the center points of therectangles already arranged is generated in a region where therectangles are to be arranged (hereinafter, referred to as anarrangement region). In a region where a larger triangular element isgenerated in this triangular mesh, the rectangles are more likely to besparse, and therefore a new rectangle is attempted to be placed in thisregion. As a criterion for judging the sizes of the triangular elements,used are a radius of a circumscribed circle, a radius of an inscribedcircle, and a maximum total length of three sides of each triangularelement. Hereinafter, description will be give taking as an example thecase where the size of each triangular element is judged using theradius of a circumscribed circle as a criterion.

This arrangement region is a region which is to be a rectangleexpressing a cluster on a hither hierarchy level than the rectangles(clusters) to be arranged (in this meaning, the arrangement region isreferred to as a figure region). Accordingly, four dummy vertices areinitially placed at proper positions in the display space to set therectangular region as the arrangement region, and triangular mesh isthen generated. Since no rectangles has placed at this time, thetriangular mesh is generated such that the rectangular arrangementregion is separated into two triangles. Subsequently, each time anotherrectangle is arranged, the triangular mesh is made finer while addingthe center of the rectangle as a new vertex.

In the initial state, since there is no rectangle already arranged, arectangle which is the first to be placed can be arranged at anarbitrary position in the arrangement region. In this case, the firstrectangle is placed in the center of the arrangement region indicated bythe dummy vertices according to the aforementioned policy (1).

FIG. 3 is a view showing a circumscribed circle of a predeterminedtriangular element which connects the center points of the alreadyarranged rectangles, in the triangular mesh.

In the triangular mesh satisfying the Delaunay condition, there is novertex of another triangular element within the circumscribed circleindicated by a dashed line in FIG. 3. Accordingly, it is presumed thatthe density of vertices of the triangular elements is low in thevicinity of a triangular element whose circumscribed circle is large. Ina predetermined region, the lower density of vertices of the triangularelements means a fewer rectangles.

FIG. 4 is a view showing classification of the triangular elements ofthe triangular mesh by the number of dummy vertices adjacent thereto.

Herein, the meaning of a dummy vertex adjacent to a triangular elementis that a vertex of the triangular element corresponds to the dummyvertex. Accordingly, the number of dummy vertices adjacent to atriangular element is zero to three. With this principle, since thedummy vertices are on the outermost side of the triangular mesh, it canbe found that the triangular element with more adjacent dummy verticesis on the outermost side of the region where the triangular mesh isgenerated, and the triangular element with fewer adjacent dummy verticesis on the inner side of the region. Accordingly, when rectangles arearranged at the positions of the triangular elements with as fewadjacent dummy vertices as possible, the rectangles can be collectivelyarranged in a small space, and thus the arrangement region can beprevented from expanding.

FIGS. 5A and 5B are views illustrating a technique for placing arectangle in a triangular element selected as a target where therectangle is to be arranged.

An example shown in FIGS. 5A and 5B illustrates processing in the casewhere the arrangement position of a rectangle is set in a triangularelement in which two rectangles indicated by the dashed lines havealready been arranged and which has one adjacent dummy vertex. In thiscase, the center point of the rectangle to be newly arranged is placedon a line segment (line segment 501 or 502 in FIG. 5A) connecting thecenter point of the selected triangular element and a vertex of thetriangular element other than the dummy vertex, and at the same time therelevant rectangle to be newly arranged is adjacent to any one of therectangles already arranged. The relevant rectangle is thus arranged.Specifically, the relevant rectangle is arranged at a position of one oftwo rectangles indicated by the solid lines in FIG. 5B.

FIGS. 6A and 6B are views illustrating processing of moving dummyvertices and expanding an arrangement region to arrange a rectangle.

When a triangular element where the rectangle is to be placed cannot bedetected within the arrangement region formed by the dummy vertices, andthe rectangle protrudes from the arrangement region, in other words,when the rectangle is placed so as to cross a side whose both ends arethe dummy vertices (see FIG. 6A), the dummy vertices are rearranged in adirection farther from the center of a screen space so that therectangle is inside the triangular mesh (see FIG. 6B). Since thearrangement region is a rectangle indicating a cluster on a higherhierarchy level, if taking an account of the arrangement of clusters onthe relevant higher hierarchy level also, the constituent elements ofhierarchical data can be arranged in the display space more efficientlyas the area of the arrangement region is smaller. Accordingly, it isrequired to devise the procedure of arranging rectangles in order toperform this processing of expanding the arrangement region as little aspossible.

Next, description will be given of processing of arranging clusters byusing the technique for searching for an arrangement position of arectangle, which is described with reference to FIG. 3 to FIG. 6B.

FIGS. 7 and 8 are flowcharts illustrating the processing of arrangingclusters on a predetermined hierarchy level by the sort section 21 andthe element arrangement section 22. FIGS. 9A to 9E are views showing thearrangement of rectangles by using the triangular mesh. FIGS. 10A to 10Care views illustrating processing of updating the triangular meshfollowing the arrangement of a new rectangle.

Referring to FIG. 7, first, the element arrangement section 22 properlyarranges four dummy vertices (dummy nodes) in a display space to set anarrangement region, and then generates triangular mesh connecting thesedummy vertices (step 701). FIG. 9A shows this initial arrangement regionand the triangular mesh. At the time point of first setting thearrangement region, since any rectangle indicating a cluster has notbeen arranged yet, the size and the shape of the arrangement region canbe arbitrarily set. At this time, for example, the arrangement regionmay be set based on information such as the number of clusters to bearranged or the hierarchy level in the hierarchical data on which thearrangement processing is being performed.

The sort section 21 sorts the rectangles of the clusters at thehierarchy level to be arranged in descending order of area anddetermines the arrangement order (step 702). The steps 701 and 702 maybe performed in any order or in parallel.

Subsequently, the first rectangle (largest rectangle) in the arrangementorder, which is determined in the step 702, is arranged in the center ofthe arrangement region set in the step 701 (step 703). The arrangementposition thereof can be easily calculated, for example, based on thecoordinates of the four dummy vertices and of the center point of therectangle to be arranged. FIG. 9B shows a state where a rectangle 901 isarranged in the center of the arrangement region of FIG. 9A.

Subsequently, the rectangles are sequentially arranged within thearrangement region in accordance with the arrangement order determinedin the step 702. First, it is checked whether all the rectangles sortedby the sort section 21 have been already arranged (step 704). If thereare the rectangles which have not been arranged yet, the rectanglehaving the largest area thereamong is selected as an object to bearranged (step 705). Since the largest rectangle among the sortedrectangles has already arranged in the step 703, the rectangle after thesecond largest rectangle inclusive is selected. The selected rectangleis arranged based on the aforementioned technique for searching for anarrangement position of a rectangle by use of the triangular mesh (step706). FIGS. 9C to 9E show the sequential arrangement of rectangles 902,903, and 904 around the rectangle 901. This processing of arrangingrectangles will be described in detail later.

After arranging the rectangle within the arrangement region, the elementarrangement section 22 obtains the center point of the rectangle newlyarranged and connects the center point with each vertex of thetriangular element therearound to generate new triangular elements (step707). Following the update of the triangular mesh, the elementarrangement section 22 locally modifies the sides of the triangular meshwhen needed (step 708). FIGS. 9B to 9E show states where, each time thenew rectangle is arranged, the triangular elements are generated basedon the new rectangle, and the triangular mesh is updated. In theDelaunay triangular mesh, the algorithm, as described above, forupdating the triangular mesh each time another vertex is added is knownas the incremental Delaunay triangulation and described, for example, inthe following literature:

literature 3: Sloan S. W., A Fast Algorithm for Constructing DelaunayTriangulation in the Plane, Advances in Engineering Software, 9, 34-55,1987.

FIGS. 10A to 10C show the update of the triangular mesh due to the newrectangle 904 which is arranged so as to be adjacent to the alreadyarranged rectangle 901.

First, since the rectangle 904 is arranged as shown in FIG. 10A, thecenter point of the rectangle 904 comes to serve as new vertices togenerate new triangular elements as shown in FIG. 10B. Subsequently,based on the above-mentioned incremental Delaunay triangulation, a sideseparating two triangular elements surrounded by sides 1001, 1002, 1003,and 1004 and a side separating two triangular elements surrounded by theside 1002 and sides 1005, 1006, and 1007 are modified as shown in FIG.10C.

Thereafter, the element arrangement section 22 returns to the step 704,selects the next rectangle (next largest rectangle) in the order sortedby the sort section 21 as am object to be arranged (step 705), andrepeats the same processing.

By repeating the above processing, the rectangles are arranged withinthe arrangement region in descending order of area.

Next, a detailed description will be given of the processing in whichthe element arrangement section 22 arranges the rectangle in the step706 with reference to FIG. 8.

First, the triangular elements constituting the triangular meshgenerated in the step 701 are classified by the number (V) of the dummyvertices adjacent thereto (step 801). As previously described, thenumber of the dummy vertices adjacent to each triangular element is zeroto three, and therefore the triangular elements are classified into fourgroups.

Subsequently, the triangular elements with no (zero) adjacent dummyvertex are sorted in descending order of size (steps 802 and 803).Herein, the size of each triangular element can be judged, for example,by comparing the length of the radius of the circumscribed circle of thetriangular element with each other as previously described. A sortresult is temporarily stored, for example, in the main memory 12 or aregister of the processing unit 11 shown in FIG. 1.

When there is a triangular element with no (zero) adjacent dummy vertex,the following series of processing is performed on the triangularelements in the order sorted in the step 803 (step 804).

First, the largest triangular element (first triangular element in thearrangement order sorted by size) among the unprocessed triangularelements is selected as a candidate for the arrangement position of therectangle (step 805). Subsequently, a line segment (S) connecting thecenter point of the triangular element and a vertex thereof other thanthe dummy vertex is obtained (step 806). In the case of the triangularelement with no (zero) adjacent dummy vertex, three line segments (S)are detected.

Subsequently, an arbitrary line segment on which no triangular elementis placed is selected among the detected line segments (S). Thearrangement position of the rectangle being processed is determined suchthat the center of the relevant rectangle being processed (to bearranged) is located on the selected line segment and the relevantrectangle being processed is adjacent to the already arranged rectangle(step 807). This arrangement position can be easily obtained based onthe coordinate value of each rectangle or the like in the display space.

Subsequently, it is examined whether the rectangle being processedprotrudes from the relevant triangular element when the relevantrectangle being processed is placed on the arrangement position obtainedin the step 807 (step 808). In the case where the rectangle protrudes,if there is an unexamined line segment (S), the unexamined line segmentis selected, and the processing returns to the step 807 to determine thearrangement position of the rectangle (steps 809 and 807).

In the case where the rectangle does not protrude from the triangularelement, it is subsequently examined whether the relevant rectanglebeing processed interferes with (overlaps) the neighboring alreadyarranged rectangles (step 810). If the rectangle does not interfere, therectangle is arranged at the relevant position, and the processing isfinished (step 811).

On the other hand, when the rectangle being processed interferes withthe neighbor rectangles, if there is an unexamined line segment (S), theunexamined line segment is selected, and the processing returns to thestep 807 to determine the arrangement position of the rectangle (steps809 and 807).

When there is no unexamined line segment (S) in the step 809, in otherwords, when the judgment condition in the step 808 or 810 is notsatisfied, specifically, the rectangle protrudes from the triangularelement or interferes with the neighbor rectangles in the case where therectangle being processed is arranged in the arrangement position of therectangle which is obtained concerning all the line segments (S)obtained in the step 806, the processing returns to the step 804 andselects the next largest triangular element as a candidate of thearrangement position of the rectangle (steps 804 and 805). Theprocessing after the step 806 is then repeated.

In the judgment of the step 804, when it is judged that all thetriangular elements sorted in the step 803 have been examined (in thiscase, the arrangement position of the rectangle being processed has notbeen determined yet), or when there is no triangular element thatsatisfies the condition of the number of adjacent dummy vertices, theelement arrangement section 22 next extracts triangular elements withthe increased number of adjacent dummy vertices by one (at this time,one (=0+1) vertex) among the triangular elements classified by thenumber of adjacent dummy vertices (steps 812 and 813). The elementarrangement section 22 again sorts the extracted triangular elementsbased on size (step 803), and repeats the processing after the step 804.

Furthermore, in the case where the arrangement position of the rectanglebeing processed has not been decided even when the number of adjacentdummy vertices is three after repeating the above processing, theelement arrangement section 22 arranges the rectangle at a positionwhich is obtained by the processing corresponding to the steps 806 and807 and at which the rectangle protrudes from the arrangement region, inother words, the rectangle crosses the side whose both ends are dummyvertices (steps 813 and 814). Thereafter, as shown in FIGS. 6A and 6B,the positions of the dummy vertices are modified to expand thearrangement region, and the rectangle is accommodated within thearrangement region (step 815).

In the above described manner, in the arrangement region correspondingto a predetermined cluster, the rectangles, which are clusters on thelower hierarchy level than the predetermined cluster, are arranged bythe sort section 21 and the element arrangement section 22. As describedwith reference to FIG. 7, the rectangles are arranged in descendingorder of area in principle (see step 702). However, as previouslydescribed, in order to arrange highly related data close to each other,it is possible to modify the arrangement order, and furthermore, it ispossible to preferentially select a triangular element close to thecenter point of a rectangle which is highly related thereto and has beenalready arranged and to arrange the rectangle therein.

Specifically, in determining the arrangement order of the rectangles bythe sort section 21, if the nth rectangle in the sort result based onsize has k rectangles “which are highly related thereto and appear afterthe nth in the order,” the order of the k rectangles are forced tochange to the (n+1)th, (n+2)th, . . . and (n+k)th.

Subsequently, in arranging the (n+1)th, . . . and (n+k)th rectangles,whose order has been changed by the sort section 21, by the elementarrangement section 22, a new rectangle is arranged in the vicinity of arectangle which is related thereto and has been already arranged byusing a topological distance from the relevant rectangle. For example,the case is considered, where a rectangle B is arranged in the vicinityof a rectangle A related to the rectangle B. In this case, thetopological distances of triangular elements are recursively calculatedin such a manner that a triangular element adjacent to the vertex of atriangular element at which the rectangle A is arranged is set to adistance 0, a triangular element adjacent to the triangular element isset to a distance 1, similarly, a distance 2, a distance 3 and so on. Inthe step 801 of FIG. 8, instead of classifying the triangular elementsby the number of adjacent dummy vertices, the triangular elements areclassified by the topological distance from the rectangle A, andsequentially searched for the arrangement position of the rectangle Bbeginning from a triangular element with the smallest topologicaldistance. This enables the rectangle B to be arranged at the position asclose as possible to the rectangle A.

The above described operations enables the related clusters to bearranged close to each other. Which clusters are related to each othercan be identified by means of previously adding additional informationto the hierarchical data or the like.

However, this technique is effective in the case where the number ofclusters related to another cluster is smaller than the number ofrectangles (clusters) to be arranged. Giving a concrete example, thetechnique is considered to be effective for data in which the number ofclusters related to another cluster is not more than half the number ofrectangles to be arranged, and the number of clusters related to onecluster is two or three at most.

When the number of clusters related to another cluster is larger thanthe number of rectangles (clusters) to be arranged, it is difficult toobtain an arrangement sufficiently expressing the relationshipstherebetween, and the time required for the arrangement processing isincreased. In order to visualize the relationships between the clustersin such a case, it is preferable to employ a technique for connectingthe clusters with arcs by using the later described technique for graphdata, instead of this technique.

Next, description will be given of a method of generating a graphicsimage of hierarchical data by recursively performing the processing ofarranging a rectangle by the sort section 21 and the element arrangementsection 22.

FIG. 11 shows a flowchart illustrating processing of generating agraphics image of hierarchical data by control of the arrangementcontrol section 23.

Referring to FIG. 11, first, the arrangement control section 23sequentially searches for clusters on the highest hierarchy level of thehierarchical data down to clusters on the lowest hierarchy level by thebreadth-first search, and registers the clusters in a stack in order ofbeing detected (step 1101). This stack is set, for example, in the mainmemory 12 of FIG. 1 and can store the result of the above search.

Subsequently, the arrangement control section 23 selects a cluster inreverse order to the order of registration in the stack, and sets thecluster as the figure region to be processed (step 1102 and 1103). Thearrangement control section 23 causes the sort portion 21 and theelement arrangement section 22 to perform the processing of arrangingrectangles (clusters on the lower hierarchy level than the clustersselected in the step 1103) in the figure region (step 1104). This is theprocessing previously described with reference to FIGS. 7 and 8.

This processing is recursively performed from the lower hierarchy levelof the hierarchical data to the higher hierarchy level as previouslydescribed. Accordingly, when a rectangle (cluster) on a predeterminedhierarchy level is arranged, rectangles on the lower hierarchy levelsthan the predetermined hierarchy level have been already arranged withinthe relevant rectangle. Therefore, after the processing of the step 1104is finished, the positions of the rectangles at the lower hierarchylevels than the arranged rectangle are recalculated (step 1105).

After the above described processing, the arrangement control section 23returns to the step 1102, selects the next cluster registered in thestack (step 1103), and repeats the same processing. When it is judged inthe step 1102 that the arrangement of all the clusters registered in thestack is determined, the arrangement control section 23 finishes theprocessing and outputs the generated graphics image of the hierarchicaldata.

FIGS. 12A to 12C are views showing how the constituent elements of thehierarchical data are arranged for each hierarchy level by control ofthe arrangement control section 23, and a graphics image is generated.

Referring to FIGS. 12A to 12C, this hierarchical data has four hierarchylevels including data elements at the lowest hierarchy level. In FIG.12A, square cells corresponding to the data elements are arranged withinrectangles 1201 and 1202. In FIG. 12B, rectangles of clusters at thesame hierarchy level as these rectangles 1201 and 1202 are arrangedwithin a rectangle 1211 on the higher hierarchy level than therectangles 1201 and 1202. In FIG. 12C, rectangles of clusters at thesame hierarchy level as this rectangle 1211 are arranged in a rectangle1221 at the highest hierarchy level.

Herein, a processing time in this embodiment will be considered.

The processing time when the sort section 21 and the element arrangementsection 22 arrange n rectangles constituting a cluster is larger thanO(n) in this embodiment. O(n) means that the calculation can becompleted within a period of time equivalent to n multiplied by aconstant (in this case, within a constant period of time since n is aconstant). Therefore, the calculation time tends to rapidly increasewith an increase in n. However, it is considered that there is nopractical problem when n is about 500 to 1000.

Even in data in which n is thousands to tens of thousands, the followingprocessing allows the processing time to be suppressed.

-   1. n data elements are distributed into several to several tens of    virtual clusters.-   2. The data elements are arranged for each virtual cluster, and then    the groups of virtual clusters are arranged.-   3. The virtual clusters are removed while the positions of the data    elements therein are retained.

In the incremental Delaunay triangulation which updates triangular mesheach time a vertex is added, a processing time is generally O(n²) in theworst case. However, in the incremental Delaunay triangulation used inthis embodiment, this processing time is considered to be shortened.

The normal incremental Delaunay triangulation generates triangular meshby repeating the following processing as many times as the number ofnodes:

-   1. A node is added.-   2. A triangular element containing the node therein is detected.-   3. Three sides which connect the three vertices of the detected    triangular element and the node are generated to divide the    triangular element into three.-   4. Some sides with the surrounding triangular elements are modified    to locally generate again the triangular elements.    At this time, the processing time for the step 2 is O(n²) in the    worst case. However, in the incremental Delaunay triangulation    applied in this embodiment, a particular triangular element is    previously selected and a rectangle as a node is added within the    selected triangular element. Accordingly, the detection processing    of the step 2 is not required. In other words, the processing time    for the triangular mesh in this embodiment depends on the processing    time of the steps 3 and 4, which is smaller than O(n²). Accordingly,    the processing time to generate the triangular mesh in this    embodiment is smaller than O(n²).

Next, shown is an example of graphically displaying actual hierarchicaldata by applying this embodiment, which generates a graphics image ofhierarchical data according to this embodiment.

FIG. 13 is a view showing a state where Web pages under www.trl.ibm.comon the Internet are graphically displayed according to this embodimentby handling the Web pages as hierarchical data based on the URL (UniformResource Locators) thereof. In FIG. 13, the square cells indicateindividual data elements, and the rectangles surrounding the squarecells indicate clusters. Referring to the drawing, the hierarchystructure of the Web pages are displayed so as to facilitate visualunderstanding.

Second Embodiment

In the above described example, the description has been given of thetechnique for graphically displaying a hierarchy structure of thehierarchical data by use of the nested structure of the rectangularregions. However, it is further possible to express relationshipsbetween constituent elements on a predetermined hierarchy level by useof a link structure with arcs in the generated graphics image. In otherwords, a technique according to this embodiment can be used aspreprocessing for the graphics display of graph data (graph data with ahierarchy structure) among the hierarchical data.

The second embodiment graphically displays graph data with a hierarchystructure by using the aforementioned technique.

FIG. 14 is a diagram illustrating a configuration of a graphics imagegeneration apparatus according to the second embodiment which generatesa graphics image of graph data with a hierarchy structure.

The graphics image generation apparatus shown in FIG. 14 includes thesort section 21, the element arrangement section 22, the arrangementcontrol section 23, and an arc generation section 24. The sort section21 determines an arrangement order concerning the constituent elementsof each hierarchy level in the graph data to be processed. The elementarrangement section 22 arranges the constituent elements of the graphdata in accordance with the order determined by the sort section 21. Thearrangement control section 23 causes the sort section 21 and theelement arrangement section 22 to recursively perform the arrangementprocessing of the constituent elements of the graph data sequentiallyfrom the lower hierarchy level of the graph data. The arc generationsection 24 generates arcs connecting the constituent elements betweenthe constituent elements in the graphics image generated by the controlof the arrangement control section 23.

The graphics image generation apparatus shown in FIG. 14 is implementedby the computer system 10 shown in FIG. 1 similarly to the apparatusshown in FIG. 2 which generates a graphics image of hierarchical data.Specifically, each component shown in FIG. 14 is a virtual softwareblock implemented by the processing unit 11 controlled by the computerprogram held in the main memory 12 of FIG. 1. The computer program isprovided by being stored in a storage medium such as a CD-ROM or afloppy disk to be distributed or by being transmitted via a network. Thecomputer program is loaded in the main memory 12 and controls theprocessing unit 11 to implement a function of each component shown inFIG. 14 in the computer system 10 shown in FIG. 1.

The sort section 21, the element arrangement section 22, and thearrangement control section 23 among the constituent elements shown inFIG. 14, are the same as the sort section 21, the element arrangementsection 22, and the arrangement control section 23 shown in FIG. 2,respectively. Therefore, the same numerals are given thereto, and thedescription thereof is omitted.

The arc generation section 24 generates an arc for constituent elementswithin a rectangle specified by a user in the graphics image generatedby the sort section 21 and the element arrangement section 22, and thearrangement control section 23 based on the relationship between therelevant constituent elements. The relationship between the constituentelements can be added in advance to the original graph data asadditional information. As the technique for generating the arc, anexisting technique used in the graphics display technology for this typeof graph data can be employed.

In generating the arc, the arc generation section 24 can properly movethe constituent elements such that the arc does not overlap anotherconstituent element and another arc. In this case, the rectangle wherethe relevant constituent elements are arranged can be also expanded whenneeded. In the graph data with a hierarchy structure, the relevantrectangle is usually a constituent element of a rectangle on the higherhierarchy level. Therefore, when the rectangle is expanded, thearrangement of the constituent elements including the relevant rectangleis changed. In this case, it is required to properly move constituentelements around the relevant rectangle away from the rectangle.

FIG. 15 is a flowchart illustrating the operation of generating an arcbetween constituent elements of a predetermined cluster in graph datawith a hierarchy structure in the arc generation section 24. FIGS. 16Ato 16D are views showing how arcs are generated in graph data generatedby the sort section 21, the element arrangement section 22, and thearrangement control section 23.

As shown in FIG. 15, the arc generation section 24 inputs a graphicsimage of the entire graph data generated by the sort section 21, theelement arrangement section 22, and the arrangement control section 23from the video memory 13 shown in FIG. 1 (step 1501). At this time, thegraphics image is displayed on the display unit 14 shown in FIG. 1, andis in a state capable of accepting the specification of a cluster inwhich arcs are to be generated by GUI (Graphical User Interface). FIG.16A shows a display example on the display unit 14 in this state.Referring to the same drawing, it is understood that this graph dataincludes five hierarchy levels.

Subsequently, the user specifies a desired cluster using an input devicesuch as a mouse, and the arc generation section 24 accepts this input(step 1502).

The arc generation section 24 rearranges rectangles on the lowerhierarchy level by one than the relevant cluster based on thisspecification, and generates arcs based on the relationships between therectangles (clusters) (step 1503).

When the rectangle indicating the specified cluster is enlarged by therearrangement of the rectangles, the arc generation section 24 moves theother clusters on the same hierarchy level as the relevant cluster suchthat the cluster does not interfere with the relevant other clusters(step 1504).

Lastly, the arc generation section 24 stores in the video memory 13 thegraphics image in which the arcs have been generated in the abovedescribed processing. The graphics image is then displayed on thedisplay unit 14.

FIG. 16B shows a result of the processing by the arc generation section24 when a cluster 1601 (rectangle on the outermost side, which containsall the clusters) on the highest hierarchy level is specified by theuser in the state of FIG. 16A. As shown in the drawing, arcs aregenerated between rectangles on the second hierarchy level, and thearrangement position of each rectangle is changed.

FIG. 16C shows a result of the processing by the arc generation section24 when a cluster 1602 on the second hierarchy level is specified by theuser in the state of FIG. 16B. As shown in the drawing, arcs aregenerated between rectangles within the rectangle (third hierarchylevel) indicating the cluster 1602, and the arrangement positions of therectangles are changed. Moreover, as a result of changing thearrangement positions of the rectangles on the third hierarchy level,the rectangle indicating the cluster 1602 is expanded. Accordingly, thearrangement positions of the other rectangles on the second hierarchylevel are changed.

FIG. 16D shows a result of the processing by the arc generation section24 when a cluster 1603 on the fourth hierarchy level is specified by theuser in the state of FIG. 16C. As shown in the drawing, arcs aregenerated between square cells within the rectangle (fifth hierarchylevel) indicating the cluster 1603, and the arrangement positions of thesquare cells are changed. With this change, the rectangle indicating thecluster 1604 on the fourth hierarchy level containing the square cellsis expanded, and furthermore, the rectangle indicating the cluster 1602on the third hierarchy level containing the rectangle indicating thecluster 1604 is expanded.

(Including Graph Data with a Hierarchy Structure)

FIG. 17 is a view showing a state where, for clusters indicating pagesconcerning some projects of the Web pages shown in FIG. 13, arcsindicating a link structure between the pages are generated. Referringto the drawing, the link structure is clearly shown in some of the pageswhile the hierarchy structure shown in FIG. 13 is maintained.

Third Embodiment

In the first and second embodiments, in order to generate a graphicsimage showing the hierarchy structure of hierarchical data, rectangles(clusters or cells) indicating data elements (constituent elements) arearranged in descending order of size at places where the rectangles canbe arranged. This technique adopts the policies of arranging therectangles such that the data elements overlap each other as little aspossible and arranging the rectangles so as not to leave spaces in orderto efficiently utilize the screen space. As a result, the data elementsare arranged on the display space as uniformly as possible. However,when such an arrangement method is employed, a proper graphics imagecannot be generated in the case where there is a demand to make thearrangement while giving meanings to the positions of data elements onthe screen to read the meaning and tendency of the entire data, or tomake the arrangement such that similar arrangement results are obtainedfor data with similar meanings. Specifically, there are many cases wherethe very different arrangement results are obtained although thestructures of data are very similar to each other. FIGS. 35A and 35B areviews showing an example of generating graphics images in such a case.As shown in the drawings, for data of FIG. 35B which is obtained byremoving only seven data elements from the hierarchical data of FIG. 35Ahaving about 800 data elements, and so very similar to data of FIG. 35A,the very different arrangement result from that of FIG. 35A can beobtained.

The third embodiment introduces a template describing referentialpositions (arrangement positions roughly specified in advance), at whichthe clusters or cells to be arranged are desired to be arranged in thescreen space. Rectangles indicating the clusters or cells are arrangedbased on this template. Therefore, it becomes possible to give meaningsto the positions of data elements and to obtain similar arrangementresults for data having similar meanings by creating the templateaccording to an arbitrary rule and specifying the arrangement positionsof the rectangles.

FIGS. 18A and 18B are views showing a concept of the template introducedin the third embodiment.

FIG. 18A shows an example of the template for a hierarchy levelincluding nine constituent elements. The size of the template, which isposition information of the constituent elements, is equivalent to thesize of the arrangement region, and predetermined coordinates (x-ycoordinates, for example) are set in the template. With these coordinatevalues, the positions where the constituent elements are to be arrangedin the arrangement region can be specified. At the time of creating thetemplate, the sizes of rectangles indicating the nine constituentelements may not be known. Moreover, it is allowed that the rectangledestiny varies in the arrangement on the template. FIG. 18B shows aresult of arranging the nine rectangles which correspond to therespective constituent elements and have predetermined sizes based onthe template. It can be understood that the rectangles are arrangedwhile retaining the positional relationships therebetween described inthe template as much as possible, not overlapping each other, andsuppressing the expansion of the occupying space.

FIG. 19 is a diagram illustrating a configuration of a graphics imagegeneration apparatus according to the third embodiment, which generatesa graphics image of hierarchical data.

The graphics image generation apparatus shown in FIG. 19 includes a sortsection 31, an element arrangement section 32, an arrangement controlsection 33, and a template holding section 34. The sort section 31determines an arrangement order concerning the constituent elements oneach hierarchy level in graph data to be processed. The elementarrangement section 32 arranges the constituent elements of the graphdata in accordance with the order determined by the sort section 31. Thearrangement control section 33 causes the sort section 31 and theelement arrangement section 32 to recursively perform the arrangementprocessing of the constituent elements of the graph data sequentiallyfrom the lower hierarchy level of the graph data. The template holdingsection 34 holds a template referred to when the element arrangementsection 32 arranges the constituent elements (rectangles).

The graphics image generation apparatus shown in FIG. 19 is implementedby the computer system 10 as shown in FIG. 1 similarly to the graphicsimage generation apparatus for the hierarchical data shown in FIG. 2.Specifically, the sort section 31, the element arrangement section 32,and the arrangement control section 33 shown in FIG. 19 are virtualsoftware blocks implemented by the processing unit 11 which iscontrolled by the computer program held in the main memory 12 of FIG. 1.The computer program is provided by being stored in a storage mediumsuch as a CD-ROM or a floppy disk to be distributed or by beingtransmitted via a network. The computer program is loaded in the mainmemory 12 and controls the processing unit 11 to implement a function ofeach component shown in FIG. 19 in the computer system 10 shown inFIG. 1. The template holding section 34 is implemented by the mainmemory 12 or the storage unit 15.

The third embodiment is similar to the first embodiment in that thegraphics image of hierarchical data is generated by the technique forcombining the regions indicating hierarchy levels in the nested manner.The cells and clusters constituting the graphics image generated in thisembodiment have similar definitions to those in the first embodiment.

In the configuration shown in FIG. 19, when arranging clusters or cellson a lower hierarchy level than a predetermined cluster within arectangle indicating the relevant predetermined cluster, the sortsection 31 determines (sorts) the arrangement order of the clusters orcells.

The arrangement order is determined based on the template. First, thecoordinate values of the four vertices of the arrangement region (of thesame size as the template) where the constituent elements are to bearranged are normalized into (−1, −1), (1, −1), (1, 1), and (−1, 1).This state is shown in FIG. 20. The arrangement order of the constituentelements whose arrangement positions are specified by the coordinatevalues of the template are determined in accordance with a predeterminedcriterion. The criterion for determining the arrangement order isproperly set according to the meaning of the arrangement position ofeach constituent element which is specified by the template or the like.For example, the criterion may be the ascending order of the xcoordinate values or the ascending order of the distance from the originin the normalized coordinate values.

The constituent elements whose arrangement positions are not specifiedby the coordinate values of the template can be arranged, for example,in descending order of the rectangle area similarly to the firstembodiment. A sort result showing the arrangement order of the clustersor the cells is temporarily stored in the main memory 12 or the registerin the processing unit 11.

The element arrangement section 32 arranges the clusters or cells of thehierarchical data in the display space in accordance with the ordersorted by the sort section 21, which is read from the main memory 12 orthe like. The element arrangement section 32 determines the arrangementpositions of the rectangles indicating these constituent elements basedon the following criteria of judgment.

-   [Criterion 1] Position where the rectangle does not overlap the    already arranged rectangles.-   [Criterion 2] Position whose distance D from the reference position    described in the template is as small as possible.-   [Criterion 3] Position where the expanded amount S of an occupied    region due to the arrangement of the relevant rectangle is as small    as possible.

The space is searched for a position which, among these criteria, mustsatisfy the criterion 1 and satisfies the criteria 2 and 3 as much aspossible. In this embodiment, the position where the value of aD+bd (aand b are constants defined by the user) is the smallest is consideredas a position which most satisfies the criteria 2 and 3. By properlysetting a and b, it can be controlled which of the criterion 2 and 3 isgiven priority.

In order to implement the processing of rapidly searching for a spacewhere the rectangle can be arranged, the element arrangement section 32performs processing using triangular mesh which is composed of trianglessatisfying the Delaunay condition and connects the center points of therectangles similarly to the element arrangement section 22 of the firstembodiment. Specifically, the element arrangement section 32 narrows thenumber of candidates for the position of the rectangle into a finitenumber with reference to the Delaunay triangular mesh, and then arrangesthe rectangle at the best position thereamong.

In arranging a cluster on a predetermined hierarchy level, similarly tothe element arrangement section 22 of the first embodiment, the elementarrangement section 32 retains the relative positional relationshipsbetween a rectangle indicating the relevant cluster and rectangles orsquares indicating clusters or cells on a lower hierarchy level than therelevant cluster, which have been already arranged within the relevantcluster, in other words, handles the combination of these figures as afigure, and performs arrangement.

As described above, in the third embodiment, the rectangles are arrangedby the technique used in the first embodiment with the addition of acondition of the position close to the reference position described inthe template.

The arrangement control section 33 causes the sort section 31 and theelement arrangement section 32 to recursively repeat the processing ofarranging rectangles for each hierarchy level of the hierarchical datafrom the lowest hierarchy level to the higher hierarchy level, thusgenerating a graphics image of the entire hierarchical data. Thegenerated graphics image is stored in the video memory 13 shown in FIG.1 and displayed on the display unit 14.

The template holding section 34 holds the template which is referred towhen the constituent elements are arranged by the element arrangementsection 32. In this embodiment, it becomes possible to give meanings tothe positions of the data elements and to obtain similar arrangementresults for data having similar meanings by creating the template inaccordance with an arbitrary rule as described above. The types of thistemplate and the method of creating the template will be described indetail later.

Next, description will be given of processing of generating a graphicsimage of hierarchical data based on the above described configuration.

In this embodiment, first, the coordinate values of four vertices v₁,V₂, V₃, and v₄ of an arrangement region are set to (−1, −1), (1, −1),(1, 1), and (−1, 1), respectively. A diagonal is then drawn in thisarrangement region to generate triangular mesh composed of twotriangular mesh elements. This is set to the initial state of thetriangular mesh in the present invention. The technique for making thetriangular mesh finer thereafter while satisfying the Delaunay conditionis the same as that described in the first embodiment (see FIGS. 3 and4).

Subsequently, rectangles indicating constituent elements (hereinafter,referred to as just rectangles) are arranged within the inner region ofthe triangular mesh one by one in order. As previously described, inthis embodiment, the arrangement order of the rectangles is determinedbased on the coordinate values of the template specifying thearrangement positions of the rectangles. As shown in FIG. 21, ifrectangles r₁ and r₂ are already arranged, the next rectangle isarranged at the position close to the coordinate value in the templateso as not to be spaced from the rectangles r₁ or r₂.

In this embodiment, the triangular mesh elements are sequentiallyextracted in ascending order of the distance from the coordinate valuenormalized on the template, and a plurality of candidate positions areset within each of the extracted triangular mesh elements. Subsequently,attempts are made at arranging a rectangle at the candidate positions.This is repeated for several extracted triangular mesh elements toidentify the candidate position which satisfies the criterion 1 and hasthe minimum value of aD+bS, and the identified candidate position isdetermined as the arrangement position of the rectangle.

FIGS. 22A and 22B are views illustrating a method of extracting thetriangular mesh elements for determining the arrangement position of therectangle.

As shown in FIG. 22A, first, a triangular mesh element containing thecoordinate value of a rectangle to be newly arranged on the template isidentified (see FIG. 22A). Taking this triangular mesh element as thestarting point, triangular mesh elements are extracted by the breadthfirst search in the neighbor relationships (see FIG. 22B). The candidatepositions of the rectangle are then calculated according to the order ofextraction. Because the triangular mesh elements are treated inascending order of the distance from the template coordinate value, thevalue of aD tends to increase with the progress of the processing.Therefore, in this embodiment, the repeating processing is terminatedwhen the value of aD exceeds the minimum value of the aD+bS which isalready recorded.

FIG. 23 is a view illustrating a method of obtaining candidate positionswhere a rectangle is arranged in an extracted triangular mesh element.

As shown in FIG. 23, in order to calculate the candidate arrangementpositions of the rectangle, first, line segments connecting a vertex ofthe triangular mesh element and an opposite side thereto are generatedat constant sampling intervals. A position on the line segments wherethe rectangle borders on an already arranged rectangle is set as acandidate position of the center point of the new rectangle, and anattempt is made at arranging the rectangle at this candidate position.There are m candidate positions within a certain triangular meshelement, the candidate positions are described as c₁ to c_(m) in thisdisclosure. At this time, any one of the following processes isperformed.

-   -   When a center point v_(i+4) of a rectangle r_(i) is arranged at        a candidate position c_(j), if the rectangle r_(i) overlaps        another rectangle already arranged, the rectangle is not        arranged at the candidate position c_(j).    -   The value of aD+bS at the candidate position c_(j) is        calculated. The area of the rectangular region, the total length        of the four sides, or the like is used for the value of S. If        the calculated value of aD+bS is the smallest among all the        values calculated for the rectangle r_(i), the value is recorded        as (aD+bS)_(min). Simultaneously, the candidate position c_(j)        is recorded as a position c_(min).

The above process is repeated for each triangular mesh element. Thecenter point v_(i+4) of the rectangle is then arranged at the positionc_(min) recorded at the time of ending the repetition.

Next, a description will be given of processing of expanding thearrangement region for arranging a rectangle.

In this embodiment, the arrangement region is expanded by moving any ofthe four vertices v₁, v₂, v₃, and v₄ in the following two cases.

-   1) In the case where the rectangle r_(i) arranged at the position    c_(min) which is, determined by the above described process    protrudes from the arrangement region defined by the four vertices    v₁, v₂, v₃, and v₄.-   2) In the case where the position C_(min) is not recorded at all. In    other words, in the case where a candidate position that satisfies    the criterion 1 is not found. In this case, after the region is    expanded, the processes are performed again from the processing of    calculating candidate positions.

FIG. 24 is a view schematically showing a method of expanding thearrangement region in the above two cases.

When the arrangement region is expanded, the coordinate values of thevertices of the triangular mesh on the template are normalized again.

In the above described manner, the graphics image is generated accordingto the arrangement of the rectangles based on the template. However, inthe actual situation of generating a graphics image, rectangles to bearranged sometimes includes rectangles which are given coordinate valueson the template and rectangles which are not given coordinate values.For example,

-   -   when a design view for a graphics image to be generated is        reflected on a template, there are data elements whose positions        are specified by the template and data elements whose positions        are not specified by the template in some cases; or    -   In time series data, when an arrangement result at the last time        point is used as a template, the coordinate values of newly        added data elements are not described in the template.

In the above described situation, a case is conceived where thecoordinate values are not described in the template.

In this case, the arrangement of all the groups of rectangles isdetermined by the following procedure.

-   1. First, a group of rectangles whose coordinate values are    described in the template is collected, and the arrangement thereof    is determined by the technique of this embodiment.-   2. Subsequently, a group of rectangles whose coordinate values are    not described in the template is collected, and the arrangements of    these rectangles are determined in descending order of area by the    algorithm of the first embodiment.

Referring to FIGS. 25 to 27, a description will be given of a processflow of arranging rectangles according to this embodiment. FIG. 25 is aflowchart illustrating a method of arranging a group of rectanglesconstituting a hierarchy level. FIG. 26 is a flowchart illustrating amethod of determining the arrangement position of a rectangle. FIG. 27is a flowchart illustrating processing of generating a graphics image ofhierarchical data by the control of the arrangement control section 33.

Referring to FIG. 25, first, the sort section 31 reads data of ahierarchy level where the processing of arranging rectangles is to beperformed among hierarchical data to be processed from the main memory12. The sort section 31 then collects rectangles whose coordinate valuesare described in the template, and normalizes the coordinate values.Subsequently, the sort section 31 sorts the rectangles according to apredetermined criterion based on the arrangement positions of dataelements (constituent elements), such as the ascending order of the xcoordinate value or the ascending order of the distance from the originin the normalized coordinate values (step 2501). A sort result istemporarily stored in the main memory 12 or the register of theprocessing unit 11, and used by the element arrangement section 32.

Subsequently, the element arrangement section 32 reads the templatewhich is referred to for the arrangement of the rectangles (constituentelements) from the template holding section 34, and sets the triangularmesh to the initial state using the four vertices of the arrangementregion corresponding to the template (step 2502). The following seriesof processing is then applied to each rectangle r_(i) to be arranged todetermine the arrangement thereof (step 2503).

First, a rectangle which is not arranged yet is extracted according tothe sort order by the sort section 31 (step 2504). The arrangementposition of the rectangle is determined according to a procedure to bedescribed later with reference to FIG. 26 (step 2505). The rectangularregion is expanded when needed (step 2506). After the triangular mesh isupdated, the procedure proceeds to the processing of arranging the nextrectangle (step 2507).

When all the rectangles on the hierarchy level to be processed arearranged, the processing is ended (step 2503). The generated graphicsimage on the relevant hierarchy level is temporarily stored in the mainmemory 12 or the register of the processing unit 11, and used ingenerating a graphics image at the next hierarchy level.

Next, description will be given of processing of determining thearrangement position of the rectangle, which is performed in step 2505.

In order to arrange the rectangle extracted in the step 2504 of FIG. 25,first, a triangular mesh element t₀ containing a coordinate value W_(i)of the rectangle r_(i), which is described in the template, isidentified, and the identified triangular mesh element t₀ is registeredin a FIFO queue (step 2601). The following series of processing is thenrepeated until the FIFO queue is emptied (step 2602).

First, a triangular mesh element t is taken out of the FIFO queue. Ifthere is a triangular mesh element that is not registered in the FIFOqueue yet among triangular mesh elements adjacent to the triangular meshelement t, that triangular mesh element is registered in the FIFO queue(step 2603).

Subsequently, the candidate positions c₁ to c_(m) are calculated withinthe triangular mesh element t, and the center point v_(i+4) of therectangle r_(i) is arranged at the candidate positions on trial to makethe following judgment (step 2604).

-   (a) The value of aD+bS is calculated for each candidate position    (step 2605), and it is judged whether or not aD is greater than    (aD+bS)_(min) (step 2606). If aD is greater than (aD+bS)_(min),    (aD+bS)_(min) is recorded, and the repetition processing is    terminated. It is then determined that the center point v_(i+4) of    the rectangle r_(i) is arranged at the corresponding position    c_(min), and the processing is finished (step 2610).-   (b) If aD is not greater than (aD+bS)_(min), in other words, if the    rectangle r_(i) overlaps another rectangle already arranged, next,    it is judged whether the value of aD+bS is the smallest (step 2607).    If this value is the smallest, the value is recorded as    (aD+bS)_(min), and simultaneously, the candidate position thereof is    recorded as the position c_(min) (step 2608).

When the judgments are made for all the candidate positions, the nexttriangular mesh element is selected, and the processing is repeated(steps 2609, 2602, and 2603). Note that, when aD is not greater than(aD+bS)_(min) in the judgment of the step 2606, it may be judged thatthe rectangle cannot be arranged at that place, and the process mayproceed to the step 2609 without making the judgment of the step 2607.

When the FIFO queue is emptied by repetition of the above mentionedprocessing, it is determined that the center point v_(i+4) of therectangle r_(i) is arranged at the position c_(min) making the record of(aD+bS)_(min), and the processing is finished (step 2610).

When there are rectangles whose coordinate values are not described inthe template, these rectangles are collected, and the arrangementsthereof are determined by use of the algorithm (see FIGS. 7 and 8)disclosed in the first embodiment.

Next, description will be given of processing of arranging rectangles ateach hierarchy level by the control of the arrangement control section33 with reference to FIG. 27.

First, the hierarchical data to be processed is read from the mainmemory 12, and hierarchy levels are searched for the hierarchical databy the breadth first search beginning from the highest hierarchy levelto lower hierarchy levels. The hierarchical data is registered in astack in the search order (step 2701). The hierarchical data registeredin the stack for each hierarchy level is selected one by one in thereverse order of the registration in the stack (step 2703). According tothe procedure shown in FIGS. 25 and 26, a group of rectanglesconstituting the selected hierarchy level is arranged (step 2704).

As previously described, since this processing is recursively performedfrom the lower hierarchy level up to the higher hierarchy level of thehierarchical data, when a rectangle (cluster) on a predeterminedhierarchy level is arranged, rectangles on the lower hierarchy levelsthan the predetermined level have already been arranged within therelevant rectangle. Accordingly, after the processing of the step 2704is finished, the positions of the rectangles on the lower hierarchylevels than the arranged rectangle are recalculated (step 2705).

The processes of the steps 2703 to 2705 are performed on each hierarchylevel. When the arrangements of the rectangles are determined on all thehierarchy levels, the graphics image, which is an arrangement result, isstored in the video memory 13 and outputted on the display unit 14(steps 2702 and 2706).

Next, descriptio will be given of a method of creating a template usedin the processing of arranging clusters or cells in this embodiment.

In generation of a target graphics image of this embodiment, in somecases, a seamless visualization result is desired to be obtained fordata changing along the time series. However, in the case of updatingthe graphics image according to temporal change in the hierarchicaldata, if the arrangements of the constituent elements after the updateare greatly changed from the arrangements of the correspondingconstituent elements before the update, the target seamlessvisualization result cannot be obtained. Therefore, a new graphics imageis generated using a last graphics image before the update according tothis embodiment. FIGS. 28A to 28C are views showing how a graphics imageis updated by use of such a template. Referring to FIGS. 28A to 28C, itis understood that the corresponding constituent elements before andafter the update are arranged at substantially the same positions bygenerating the graphics image after update (FIG. 28C) based on thetemplate (FIG. 28B) created from the graphics image before update.Accordingly, the seamless visualization results can be obtained beforeand after the update. Such a system is designed to include templatecreating means, as a function of the processing unit 11program-controlled, which reads a position of each constituent elementon each hierarchy level in the generated graphics image and associatesthe constituent element with normalized coordinates in each arrangementregion to create a template. The created template is saved in thetemplate holding section 34, and used when the graphics image isupdated.

In some cases, a user who desires the graphics image (hereinafter,referred to as just a user) has a design view about positionalrelationships between data elements, such as “this is arranged at theupper left” or “this is arranged at the lower right”, and wants toobtain a visualization result on which the design view is reflected asmuch as possible. In this case, a graphics image is generated by using atemplate created based on the design view of the user according to thisembodiment. FIGS. 29A to 29C are views showing a graphics image isgenerated by using such a template. Referring to FIGS. 29A to 29C, it isunderstood that the graphics image on which the design view of the user(rough positions of constituent elements A, B, C, and D) is reflected isgenerated by creating a template (FIG. 29B) based on a design (FIG. 29A)by the user and generating the graphics image (FIG. 29C) by use of thistemplate. Such a system is designed to include template creation means,as a function of the processing unit 11 program-controlled, whichdisplays a graphical user interface allowing the user to manuallydescribe the design on the display unit 14, accepts input from the inputdevices such as a keyboard and a mouse, and creates the template. Thecreated template is saved in the template holding section 34.

Further in some cases, the visualization result is desired to beobtained with reference to meanings of data, for example, by arrangingdata elements in alphabetical order beginning from the left side or indescending order of date beginning from the top in the display space. Inthis case, coordinate axes which can reflect the meanings of data aredefined, and the graphics image is generated by use of a template usingsuch coordinate axes according to this embodiment. FIGS. 30A to 30C areviews showing how the graphics image is generated by use of such atemplate. Referring to FIGS. 30A to 30C, it is understood that thegraphics image which reflects the meanings of data on the arrangementpositions can be generated in the following manner. The template (FIG.30B) is generated based on a (alphabetical) coordinate axis extendingfrom the top to the bottom in English alphabetical order and a(numerical) coordinate axis extending from the left to the right as anumber increases (FIG. 30A), and the graphics image (FIG. 30C) isgenerated by using this template. Such a system is designed to includetemplate generating means for translating predetermined coordinate axesinto a template as a function of the processing unit 11program-controlled. The generated template is saved in the templateholding unit 34.

FIGS. 31A to 31C are views showing states where predeterminedhierarchical data are graphically displayed according to thisembodiment. FIG. 31B is a view showing a state where the hierarchicaldata of FIG. 31A is slightly changed and graphically displayed againwithout using a template (by the technique of the first embodiment).FIG. 31C is a view showing a state where the hierarchical data isgraphically displayed again under the same condition using the graphicsimage of FIG. 31A as the template.

Comparing FIGS. 31A and 31B, although the data structures thereof arevery similar, the visual impressions thereof are very different. On theother hand, FIGS. 31A and 31C are the graphics images visually verysimilar to each other because FIG. 31C uses FIG. 31A as the template.

FIG. 32 is a view showing a state where predetermined Web pages aregraphically displayed according to this embodiment by being handled ashierarchical data based on URL thereof. FIG. 33 is a view showing astate where the hierarchical data of FIG. 32 is slightly changed andgraphically displayed again without using a template (by the techniqueof the first embodiment). FIG. 34 is a view showing a state where thehierarchical data is graphically displayed under the same conditionusing the graphics image of FIG. 32 as the template.

Comparing FIGS. 32 and 33, for example, the arrangements of the clustersin the regions surrounded by the solid lines and the positions of theclusters surrounded by the dashed lines are greatly different. On theother hand, in FIGS. 32 and 34, the same data are arranged atsubstantially the same positions.

In this embodiment, the description has been given of the technique forgenerating a graphics image by expressing hierarchical data by use ofthe nested structure and controlling the arrangement of the constituentelements (clusters or cells) on each hierarchy level by use of atemplate. However, it is obvious that this embodiment can be applied tographics display of graph data with a hierarchy structure by connectingpredetermined constituent elements with arcs as described in the secondembodiment.

In each embodiment described above, the generated graphics image isdisplayed on the display unit 14 after being stored in the video memory13. However, the graphics image stored in the video memory 13 can beutilized in a CAD (Computer Aided Design) system and the like.

Moreover, when squares indicating cells to be arranged or rectanglesindicating clusters to be arranged are color-coded based on informationadded to the cells or clusters, it becomes possible to visualize thecharacter and feature of each cluster.

Furthermore, in the aforementioned embodiments, the description has beengiven of the case of arranging rectangles of various sizes within arectangular region. However, the shapes of constituent elements to bearranged are not limited to the rectangle. In the technique provided bythese embodiments, the arrangement position of a figure is determinedafter a candidate arrangement position of the figure is selected byusing triangular mesh, and the figure is actually arranged at theselected position to confirm whether the figure does not interfere withanother already arranged figure. Accordingly, even with a figure in ashape other than the rectangle, a graphics image in which the hierarchystructure of data is expressed in the nested structure can be generatedby being subjected to the same processes. However, compared with thecase of using the rectangles, it becomes complicated to calculate theexistence of interference and the center point (or identifiable pointwhich can be a vertex of a new triangular mesh element) of the arrangedfigure in updating the triangular mesh. Accordingly, the time requiredfor processing is increased. However, by using other shapes, it becomespossible to express the character and feature of each cluster or cellwith a shape of the cluster or cell in addition to the aforementionedcolor coding.

Moreover, the means for adding and removing a cell or cluster to andfrom an already generated graphics image can be added to the graphicsimage generation apparatus of the embodiments, as the arc generationunit 24 is added in FIG. 14. In this case, the means for adding andremoving constituent elements accepts an operation by a user to add aconstituent element or to remove a desired constituent element, and addsa square or a rectangle at the corresponding position or removes aspecified square or rectangle. When the rectangle to be removed includesconstituent elements at a lower hierarchy level than the relevantrectangle, these constituent elements can be removed together, or onlythe specified rectangle can be removed while the constituent elements onthe lower hierarchy level are left (in this case, only the hierarchylevel of the relevant rectangle in the hierarchy structure is lost). Ifthe positional relationships between squares or rectangles at the samehierarchy level are changed by the removal of the square or rectangle,the positional relationships between the squares or rectangles areadjusted by applying a proper rule (for example, a dynamics model whichcauses attractive and repulsive forces to act between the squares orrectangles).

The above described embodiments generate a graphics image ofhierarchical data. However, in the case of generating a graphics imageof hierarchical data with two hierarchy levels (data composed of dataelements (cells) on the lowest hierarchy level and a cluster includingall the data elements), each embodiment is equivalent to processing ofefficiently arranging predetermined figures in a predetermined region.Accordingly, it is possible to apply the embodiments in technical fieldswith such a requirement (for example, fields such as arrangement ofVLSIs on a board, arrangement of patterns of clothes, and arrangement ofmechanical parts on a plate). In this case, in general, figures areoptimally arranged in a fixed region (so as to minimize waste space).Accordingly, this type of fields requires a technique of optimizationhow to arrange the figures without waste and attaches little importanceto the shortening of time required for processing. However, when thereis a demand that arrangement be performed in a short time while thearrangement result is not necessarily optimal in trial processing or thelike, the technique for generating a graphics image of hierarchical dataaccording to the embodiments can be applied.

INDUSTRIAL APPLICABILITY

As described above, according to the present invention, it is possibleto easily generate a graphics image of large-scale data.

Moreover, according to the present invention, it is possible to rapidlyperform processing of efficiently arranging elements of arbitrary sizesin a predetermined region.

1. A graphics image generation apparatus, comprising: elementarrangement means for, based on hierarchical data, arranging figureswhich indicate constituent elements on a lower hierarchy level than aconstituent element on a predetermined level of the hierarchical data ina figure region which indicates the constituent element on thepredetermined level; and arrangement control means for generating agraphics image of the hierarchical data by causing said elementarrangement means to recursively perform arrangement of figures for eachhierarchy level from a lower hierarchy level to a higher hierarchy levelof the hierarchical data; wherein said arrangement of figures isaccomplished by a first step of establishing the center point of one ofsaid figures and two further points distant from said one figure toserve as vertices for construction of one triangle of a triangle mesh,and a second step of locating a center point of said one triangle toenable a positioning of a further one of said figures along a lineconnecting the center point of said one triangle with a vertex of saidone triangle.
 2. The graphics image generation apparatus according toclaim 1, wherein said element arrangement means arranges figures suchthat related ones of the constituent elements are located close to eachother.
 3. The graphics image generation apparatus according to claim 1,wherein, when a predetermined one of the constituent elements isarranged, said element arrangement means handles a combination of afigure which indicates the predetermined constituent element and figureswhich are arranged within the predetermined constituent element andindicate constituent elements on a lower hierarchy level as one figure.4. The graphics image generation apparatus according to claim 1, furthercomprising: arc creation means for generating an arc connecting theconstituent elements constituting a predetermined hierarchy level in thehierarchical data, based on a relationship between the constituentelements.
 5. The graphics image generation apparatus according to claim1, further comprising: template holding means for holding a templateidentifying positions within the figure region, wherein said elementarrangement means determines an arrangement position of a figure basedon the template held in the template holding means and arranges thefigure.
 6. The graphics image generation apparatus according to claim 5,wherein the template is created based on a graphics image alreadygenerated.
 7. The graphics image generation apparatus according to claim5, wherein the template is created based on information concerning apositional relationship between constituent elements, the informationbeing inputted by use of predetermined input means.
 8. The graphicsimage generation apparatus according to claim 5, wherein the template iscreated based on predetermined coordinate axes expressing meanings ofdata with a positional relationship.
 9. A graphics image generationapparatus which generates a graphics image including figures arrangedwithin a predetermined region, the apparatus comprising: sort means forsorting figure data to be arranged based on a figure area; and elementarrangement means for sequentially arranging figures based on the figuredata from a center of the region to a periphery thereof in sort ordersorted by said sort means; wherein said arranging of figures isaccomplished by a first step of establishing the center point of one ofsaid figures and two further points distant from said one figure toserve as vertices for construction of one triangle of a triangular mesh,and a second step of locating a center point of said one triangle toenable a positioning of a further one of said figures along a lineconnecting the center point of said one triangle with a vertex of saidone triangle.
 10. The graphics image generation apparatus according toclaim 9, wherein said sort means modifies, based on a relationshipsgiven to the figure data, the order of the figure data sorted based onthe figure area, and said element arrangement means arranges relatedones of the figures so as to locate close to each other.
 11. Thegraphics image generation apparatus according to claim 9, wherein saidelement arrangement means generates triangular mesh including centerpoints of figures already arranged as vertices in the region, anddetermines an arrangement position of a figure to be next arranged basedon sizes of triangular elements of the triangular mesh.
 12. A graphicsimage generation apparatus, comprising: graphics image generation meansfor receiving hierarchical data and generating image data of a graphicsimage which expresses a hierarchy structure of the hierarchical data byuse of a nested structure of two-dimensional figures; storage means forstoring the image data of the graphics image of the hierarchical data,the image data being generated by said graphics image generation means;and display means for reading the image data from said storage means anddisplaying the read image data; wherein said generating of image data isaccomplished by a first step of establishing the center point of one ofsaid figures and two further points distant from said one figure toserve as vertices for construction of one triangle of a triangular mesh,and a second step of locating a center point of said one triangle toenable a positioning of a further one of said figures along a lineconnecting the center point of said one triangle with a vertex of saidone triangle.
 13. A graphics image generation apparatus which generatesa graphics image including figures arranged within a predeterminedregion, comprising: position information holding means for holdinginformation concerning arrangement positions of figures, the informationbeing created based on a graphics image already generated; and elementarrangement means for arranging the figures in the region based on theinformation concerning the arrangement positions of the figures, theinformation being held in said position information holding means, suchthat the figures to be arranged do not overlap each other; wherein saidarranging of the figures is accomplished by a first step of establishingthe center point of one of said figures and two further points distantfrom said one figure to serve as vertices for construction of onetriangle of a triangular mesh, and a second step of locating a centerpoint of said one triangle to enable a positioning of a further one ofsaid figures along a line connecting the center point of said onetriangle with a vertex of said one triangle.
 14. A graphics imagegeneration apparatus which generates a graphics image including figuresarranged within a predetermined region, comprising: position informationholding means for holding information concerning arrangement positionsof figures, the information being created based on predetermined designinformation; and element arrangement means for arranging the figures inthe region based on the information concerning the arrangement positionsof the figures, the information being held in said position informationholding means, such that the figures to be arranged do not overlap eachother; wherein said arranging of the figures is accomplished by a firststep of establishing the center point of one of said figures and twofurther points distant from said one figure to serve as vertices forconstruction of one triangle of a triangular mesh, and a second step oflocating a center point of said one triangle to enable a positioning ofa further one of said figures along a line connecting the center pointof said one triangle with a vertex of said one triangle.
 15. A graphicsimage generation apparatus which generates a graphics image includingfigures arranged within a predetermined region, comprising: positioninformation holding means for holding information concerning arrangementpositions of figures, the information being created based onpredetermined coordinate axes which expresses meanings of data by apositional relationship; and element arrangement means for arranging thefigures in the region based on the information concerning thearrangement positions of the figures, the information being held in saidposition information holding means, such that the figures to be arrangeddo not overlap each other; wherein said arranging of the figures isaccomplished by a first step of establishing the center point of one ofsaid figures and two further points distant from said one figure toserve as vertices for construction of one triangle of a triangular mesh,and a second step of locating a center point of said one triangle toenable a positioning of a further one of said figures along a lineconnecting the center point of said one triangle with a vertex of saidone triangle.
 16. A graphics image generation method of generating agraphics image including figures within a predetermined region bycontrolling a computer, the method comprising the steps of: readingfigure data to be arranged from a storage unit storing the figure data,sorting the figure data based on figure areas, and storing the sortedfigure data in sort result storing means; generating triangular mesh inthe region; reading a sort order of the figure data from the sort resultstoring means, sequentially setting figures based on the figure data asobjects to be arranged in accordance with the sort order, determiningarrangement positions of the figures based on triangular elements of thetriangular mesh, and arranging the figures as the objects to be arrangedat the arrangement positions; and storing a graphics image obtained byarranging the figures in the region into image data storing means;wherein said determining of arrangement positions of the figures isaccomplished by a first step of establishing the center point of one ofsaid figures and two further points distant from said one figure toserve as vertices for construction of one triangle of said triangularmesh, and a second step of locating a center point of said one triangleto enable a positioning of a further one of said figures along a lineconnecting the center point of said one triangle with a vertex of saidone triangle.
 17. The graphics image generation method according toclaim 16, wherein the step of arranging the figures includes the stepsof: determining an arrangement position of a figure based on sizes ofthe triangular elements; and arranging one of the figures as the objectsto be arranged at the determined arrangement position and judgingwhether a judgment condition for judging possibility of the arrangementis satisfied, wherein when the judgment condition is not satisfied, saidtwo steps are recursively performed.
 18. The graphics image generationmethod according to claim 17, wherein, in the step of determining thearrangement position of the figure, the triangular elements of thetriangular mesh are selected in descending order of size and set to thearrangement position of the figure as the object to be arranged.
 19. Thegraphics image generation method according to claim 18, wherein, in thestep of determining the arrangement position of the figure, among thetriangular elements of the triangular mesh, a triangular elementincluding fewer vertices that correspond to vertices of the region issequentially selected as the arrangement position of the figure as theobject to be arranged.
 20. The graphics image generation methodaccording to claim 17, wherein, in the step of arranging the figure,after the figure is newly arranged, the triangular mesh is updated bygenerating a new triangular element while using a predetermined point ofthe newly arranged figure as a new vertex of the new triangular element,and the arrangement position of a next figure is determined based on theupdated triangular mesh.
 21. A graphics image generation method ofgenerating a graphics image including figures arranged within apredetermined region by controlling a computer, the method comprisingthe steps of: reading figure data to be arranged from a storage unitstoring the figure data, sorting the read figure data on the basis of apredetermined rule based on previously specified arrangement positionsof figures, and storing the sorted figure data in sort result storingmeans; generating triangular mesh in the region; reading a sort order ofthe figure data from the sort result storing means, sequentially settingfigures based on the figure data as objects to be arranged in accordancewith the sort order, determining arrangement positions of the figuresbased on the previously specified arrangement positions of the figuresand triangular elements of the triangular mesh, and arranging thefigures as the objects to be arranged at the arrangement positions; andstoring a graphics image obtained by arranging the figures in the regioninto image data storing means; wherein said determining of arrangementpositions of the figures is accomplished by a first step of establishingthe center point of one of said figures and two further points distantfrom said one figure to serve as vertices for construction of onetriangle of said triangular mesh. and a second step of locating a centerpoint of said one triangle to enable a positioning of a further one ofsaid figures along a line connecting the center point of said onetriangle with a vertex of said one triangle.
 22. A storage medium havinga program capable of controlling a computer to generate a graphicsimage, the program causing the computer to execute: processing ofreceiving hierarchical data and stacking constituent elements of thehierarchical data into data storing means based on a hierarchy structureof the hierarchical data; processing of recursively executing, from alower hierarchy level to a higher hierarchy level of the hierarchicaldata, processing of sequentially reading the constituent elementsstacked in the data storing means and arranging figures indicatingconstituent elements on a lower hierarchy level than the readconstituent elements in a figure region which indicate the readconstituent elements; and processing of storing a graphics image of thehierarchical data obtained by recursively executing arrangement of thefigures, into image data storing means; wherein said executing of anarrangement of the figures is accomplished by a first step ofestablishing the center point of one of said figures and two furtherpoints distant from said one figure to serve as vertices forconstruction of one triangle of a triangular mesh, and a second step oflocating a center point of said one triangle to enable a positioning ofa further one of said figures along a line connecting the center pointof said one triangle with a vertex of said one triangle.
 23. The storagemedium having a program according to claim 22, wherein the processing ofarranging the figures indicating the constituent elements on the lowerhierarchy level in the figure region includes: processing of sortingfigures to be arranged based on an area thereof and storing a sortresult in sort result storing means; and processing of sequentiallyarranging the figures in accordance with the sort result read from thesort result storing means.
 24. The storage medium having a programaccording to claim 22, wherein the process of arranging figuresindicating the constituent elements on the lower hierarchy level in thefigure region includes: processing of sorting figures to be arrangedwhile reflecting relationships given to the constituent elements onsorting and storing a sort result in sort result storing means; andprocessing of arranging related ones of the figures so as to locateclose to each other in accordance with the sort result read from thesort result storing means.
 25. The storage medium having a programaccording to claim 22, further causing the computer to execute:processing of generating an arc, based on a relationship between theconstituent elements, for the figures indicating the constituentelements which constitute a predetermined hierarchy level in a graphicsimage of the hierarchical data, the graphics image being obtained byrecursively executing the arrangement of the figures.
 26. The storagemedium having a program according to claim 22, wherein in the processingof the program of arranging the figures which indicate constituentelements at a lower hierarchy level in the figure region, arrangementpositions of the figures are determined based on a template foridentifying positions within the figure region, and the figures arearranged.